iT邦幫忙

2

Javascript 進階 3-12 10題測驗問題

  • 分享至 

  • xImage
  •  

Q1

我們都知道 Javascript 是一個動態型別的語言,必須在執行之後才知道型別

請問以下 a、b、c、d、e 的型別是?

var a = true;
var b = 'undefined';
var c = 1;
var d = null;
var e = NaN;

console.log(typeof(a));
console.log(typeof(b));
console.log(typeof(c));
console.log(typeof(d));
console.log(typeof(e));

A: boolean / string / number / null / number
B: boolean / undefined / number / object / NaN
C: boolean / string / number / object / number
D: boolean / undefined / boolean / object / number

答案: C

補充: NaN 雖然在 JavaScript 代表無效的數字,但是還是歸類於數字唷~另外 null 在課程上有講述到,這是很長久的 bug,所以才會顯示 object。

Q2

請問當使用了 new Number() 建立資料後後,此時使用 typeof() 會出現什麼型別?

A: array
B: object
C: number
D: string

答案: B

補充: 凡是使用 new 所建構的型別,在 typeof 都會是 object 唷~

Q3

請問下方程式碼分別為 true 還是 false?

var a = '10';
console.log(10 == this.a);
console.log(10 === this.a);

A: true, false
B: false, true
C: true, true
D: false, false

答案: A

補充: 一般來講,實際開發最好還是使用嚴格模式來做比較(三個等於)否則很容易出現一些奇怪的 bug

Q4

請問以下答案是什麼?

var a = new Object();
var b = a;

console.log(a === b);

A: true
B: false
C: undefined
D: 以上都不是

答案: A

補充: 這邊的觀念主要是物件會參考同一個記憶體,所以答案是 true,後面章節會有更詳細的介紹。

Q5

請問以下答案是什麼?

var a = new Object('1234');
var b = BigInt(1234);

console.log(a == b);

A: true
B: false
C: NaN
D: undefined

答案: A

補充: 在做寬鬆比較的時候,a 是一個物件格式,但是會被轉換成與 BigInt 相同格式

Q6

請問以下程式碼會跑哪一個 console.log()?

var a = new Object();
if (a) {
    console.log('程式執行');
} else {
    console.log('程式跑 else');
}

A: 程式執行
B: 程式跑 else
C: 都不是

答案: A

補充: 就算透過建構式來建立的物件,一樣是會被判定 true,因為物件的記憶體已經存在了。

Q7

請問以下答案是什麼?

console.log(10 + 10 - 10 * 2);

A: 0
B: 20
C: 10
D: NaN

答案: A

補充: 依照運算子的 優先度相依性 計算就可以得到計算結果為0。

Q8

請問以下 console.log() 會出現什麼答案?

var a = 10;
console.log(++a * a);
a = 10;
console.log(--a * a);

A: 121, 81
B: 110, 90
C: 120, 80
D: 144, 64

答案: A

補充: 因為 ++a 的時候,a + 1 變成 11 所以就是 11 * 11,--a 同理。

Q9

前面章節我們了解 JavaScript 有所謂的 ASI 機制,那麼底下程式碼是否會出現錯誤呢?

var a = 10
(a + 10).toString();

A: 出現錯誤
B: 不會出現錯誤

答案: A

補充: 實際執行得狀況會變成 var a = 10(a + 10).toString();

Q10

ASI 的機制各有好壞,其中常見的經典例子就是 return,那麼底下程式碼是否為正確呢?

var a = 1
(function() {
    console.log(a);
}())

A: 出現錯誤
B: 不會出現錯誤

答案: A

補充: 這題與上一題類似,之前的文章 也有講到類似的題型,實際運作時程式碼會變成這樣var a = 1(function() { console.log(a); })()

以上就是練習的十題,大家可以順便檢視一下自己的學習成果喔!汪汪~


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言